package com.example.roadeyeserver.datasource;

import java.util.ArrayList;
import java.util.List;

public class DynamicDataSourceContextHolder {
    /**
     * 使用ThreadLocal维护变量
     */
    private static final ThreadLocal<String> threadLocal = new ThreadLocal<>();

    /**
     * 存放所有数据源名称
     */
    public static List<String> dataSources = new ArrayList<>();

    /**
     * 设置当前数据源类型
     */
    public static void setDataSourceType(String dataSourceType) {
        threadLocal.set(dataSourceType);
    }

    /**
     * 获取当前threadLocal变量的数据源
     */
    public static String getDataSourceType() {
        return threadLocal.get();
    }

    /**
     * 清空当前threadLocal变量中所有数据源
     */
    public static void clearDataSourceType() {
        threadLocal.remove();
    }

    /**
     * 判断指定DataSource当前是否存在
     *
     * @param dataSource 数据源
     * @return
     */
    public static boolean containsDataSource(String dataSource) {
        return dataSources.contains(dataSource);
    }
}
